1. Field of the Invention
This invention relates to an address control system for software simulation, and more particularly to an effective address control system for translating operand addresses of needed operands for software simulation in a virtual machine system having a virtual storage function.
2. Description of the Prior Art
In recent years, the concept of "virtual machine" has been introduced and attempts have been made to put it into practice. The concept of virtual machine is described in detail, for example, in "IBM System Journal" 1972, No. 2. The utility of a virtual machine may be summarized as follows:
1. It is possible, through utilization of one hardware system, to create an environment that behaves as if each of a plurality of users sharing one computer system uses it all himself.
2. It is possible to virtually establish computer systems of slightly different architectures or system configurations. Accordingly, the use of a virtual machine enables simultaneous running of programs that run under different operating systems, and permits more flexible modification of the system configuration; furthermore, the operating state of the system can be monitored, and each user is free to use the debug function of the machine.
FIG. 1 schematically shows the concept of an ordinary computer system heretofore employed; and FIG. 2 schematically shows the concept of the virtual machine system. In FIGS. 1 and 2, the real machine means computer hardware. Since a plurality of user programs run under the operating system (OS) program, the computer resource (a central processor, a main memory, channels, an input/output controller, an input/output device, and a system console) is managed so that it is shared by respective programs. Between the operating system program and the real machine is provided a conceptual interface called a hardware interface, and between user programs and the operating system is provided a software interface called a user program/OS interface. In the case of the virtual machine system, a program called a virtual machine monitor (VMM) controls a plurality of virtual machine operating systems so that the system resource is shared by the respective programs. In FIG. 2, the broken line blocks each correspond to the conventional ordinary computer system and are each referred to as a virtual machine (VM). Under the virtual machine system, a plurality of virtual machines can be run simultaneously.
Nowadays, multiprogramming techniques are utilized for efficient running of the computer system, and the multiprogramming techniques permits sharing of the system resource by the respective programs. The system resource is controlled by the operating system and can be accessed by an instruction commonly called a "privileged instruction" which only the operating system can issue.
Each user program is assigned to the "problem mode," and when the user program issues the aforementioned privileged instruction, a program interruption called a "privileged-operation exception" is detected by the hardware.
In the case of the virtual machine, a plurality of conventional operating systems can be run at the same time; consequently, the system resource controlled by the operating systems programs in the past are controlled by the program referred to as the virtual machine monitor (VMM). The user programs, including the operating systems used, are all assigned to the "problem mode," and only the virtual machine monitor operates in a "privileged mode." Accordingly, when the operating system program of each user tries to execute the "privileged instruction," a program interruption is detected and execution control is transferred to the virtual machine monitor, which simulates this "privileged instruction."
The virtual machine monitor has such functions as follows:
The virtual machine monitor:
(1) Controls the user programs (including the operating systems) in order to share the system resource efficiently;
(2) Simulates the "privileged instruction" for each operating system;
(3) Receives all interrupts (including an I/O interrupt, an external interrupt and an interrupt accompanying related to virtual memory) and performs processing according to the interruption sources and, if necessary, posts the interruption to each operating system.
The virtual machine has such advantages as mentioned previously, but in the case of running a program under the virtual machine, performance degradation is caused to some extent due to an execution time overhead peculiar to the virtual machine, as compared when running the same program under the operating system of an ordinary computer heretofore employed. The overhead can be divided into direct and indirect ones as follows: